//
//  WBWelcomeView.swift
//  传智微博
//
//  Created by zuxi li on 2017/3/23.
//  Copyright © 2017年 lingtu. All rights reserved.
//

import UIKit
import SDWebImage

/// 欢迎视图
class WBWelcomeView: UIView {

//    override init(frame: CGRect) {
//        super.init(frame: frame)
//        backgroundColor = UIColor.blue
//    }
//    
//    required init?(coder aDecoder: NSCoder) {
//        fatalError("init(coder:) has not been implemented")
//    }
    
    
    @IBOutlet var iconView: UIImageView!
    
    @IBOutlet var tipLabel: UILabel!
    
    @IBOutlet var bottomCons: NSLayoutConstraint!
  
    @IBOutlet var widthCons: NSLayoutConstraint!
    
    class func welcomeView() -> WBWelcomeView {
        let nib = UINib(nibName: "WBWelcomeView", bundle: nil)
        
        let v = nib.instantiate(withOwner: nil, options: nil)[0] as! WBWelcomeView
        // 从xib加载的视图默认是600*600的
        v.frame = UIScreen.main.bounds
        return v
    }
    
    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        //提示： initWithCoder 只是刚刚从XIB 的二进制文件将试图数据加载完成
        //还没有和代码连线建立起关系， 所以开发时， 千万不要在这个方法里处理UI
    }
    
    override func awakeFromNib() {
        // 设置图像
        // url
        guard let urlString = WBNetworkManager.shared.userAccont.avatar_large,
            let url = URL(string: urlString) else {
            
            return
        }
        // 设置头像
        iconView.sd_setImage(with: url, placeholderImage: UIImage(named: "avatar_default_big"))
        // 设置圆角  在xib里设置了已经   identity -》 user Defined runtime attribute 添加KVC的键值
        iconView.layer.cornerRadius =  widthCons.constant * 0.5
        iconView.layer.masksToBounds = true
    }
    
    
    
    /// layoutSubView自动布局系统更新完成约束后， 会自动调用此方法， 通常是用来对子视图布局记性修改
    
    /// 视图被添加到window上，表示视图已经显示
    
    override func didMoveToWindow() {
        super.didMoveToWindow()
        
        // 视图是使用自动布局来设置的，只是设置了约束
        //  - 当视图被添加到窗口上时，根据父视图的大小啊，计算约束值， 更新控件位置
        // - layoutIFNeeded 会直接按照当前的约束值直接更新控件位置
        // 执行之后， 控件所在位置，就是XIB中布局的位置
        self.layoutIfNeeded()
        
        bottomCons.constant = bounds.size.height - bounds.size.height/3.0
        
        // 如果控件们的frame还没有计算好， 所有的约束会一起动画
        UIView.animate(withDuration: 1.0, delay: 0, usingSpringWithDamping: 0.7, initialSpringVelocity: 0, options: [], animations: {
            // 更新约束
            self.layoutIfNeeded()
        }) { (_) in
            UIView.animate(withDuration: 1.0, animations: { 
                self.tipLabel.alpha = 1.0
            }, completion: { (_) in
              self.removeFromSuperview()
            })
        }
    }
}
